package indi.jp.project.base.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import indi.jp.project.core.entity.BaseEntity;
import indi.jp.project.core.entity.Role;

import java.util.Date;
import java.util.List;

public class Employee extends BaseEntity {

    private String id;

    private String username;

    private String employeeNo;

    private String name;

    private String picture;

    private Date birthDate;

    private int gender;

    private String idCardNo;

    private String idCardFrontPic;

    private String idCardBehindPic;

    private String phone;

    private String email;

    private String educationCode;

    private String educationName;

    private String departmentId;

    private String departmentCode;

    private String departmentName;

    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date workDate;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date entryDate;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date contractAwardDate;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date contractExpireDate;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date resignDate;

    private String postCode;

    private String postName;

    private String professionalTitleCode;

    private String professionalTitleName;

    private String kindCode;

    private String kindName;

    private List<EmployeeCert> eduCerts;

    private List<EmployeeCert> quaCerts;

    private List<EmployeeCert> proCerts;

    private int state;

    private List<String> authorities;

    private List<Role> roles;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPicture() {
        return picture;
    }

    public void setPicture(String picture) {
        this.picture = picture;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    public int getGender() {
        return gender;
    }

    public void setGender(int gender) {
        this.gender = gender;
    }

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    public String getIdCardFrontPic() {
        return idCardFrontPic;
    }

    public void setIdCardFrontPic(String idCardFrontPic) {
        this.idCardFrontPic = idCardFrontPic;
    }

    public String getIdCardBehindPic() {
        return idCardBehindPic;
    }

    public void setIdCardBehindPic(String idCardBehindPic) {
        this.idCardBehindPic = idCardBehindPic;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEducationCode() {
        return educationCode;
    }

    public void setEducationCode(String educationCode) {
        this.educationCode = educationCode;
    }

    public String getEducationName() {
        return educationName;
    }

    public void setEducationName(String educationName) {
        this.educationName = educationName;
    }

    public String getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(String departmentId) {
        this.departmentId = departmentId;
    }

    public String getDepartmentCode() {
        return departmentCode;
    }

    public void setDepartmentCode(String departmentCode) {
        this.departmentCode = departmentCode;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public Date getWorkDate() {
        return workDate;
    }

    public void setWorkDate(Date workDate) {
        this.workDate = workDate;
    }

    public Date getEntryDate() {
        return entryDate;
    }

    public void setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
    }

    public Date getContractAwardDate() {
        return contractAwardDate;
    }

    public void setContractAwardDate(Date contractAwardDate) {
        this.contractAwardDate = contractAwardDate;
    }

    public Date getContractExpireDate() {
        return contractExpireDate;
    }

    public void setContractExpireDate(Date contractExpireDate) {
        this.contractExpireDate = contractExpireDate;
    }

    public Date getResignDate() {
        return resignDate;
    }

    public void setResignDate(Date resignDate) {
        this.resignDate = resignDate;
    }

    public String getPostCode() {
        return postCode;
    }

    public void setPostCode(String postCode) {
        this.postCode = postCode;
    }

    public String getPostName() {
        return postName;
    }

    public void setPostName(String postName) {
        this.postName = postName;
    }

    public String getProfessionalTitleCode() {
        return professionalTitleCode;
    }

    public void setProfessionalTitleCode(String professionalTitleCode) {
        this.professionalTitleCode = professionalTitleCode;
    }

    public String getProfessionalTitleName() {
        return professionalTitleName;
    }

    public void setProfessionalTitleName(String professionalTitleName) {
        this.professionalTitleName = professionalTitleName;
    }

    public String getKindCode() {
        return kindCode;
    }

    public void setKindCode(String kindCode) {
        this.kindCode = kindCode;
    }

    public String getKindName() {
        return kindName;
    }

    public void setKindName(String kindName) {
        this.kindName = kindName;
    }

    public List<EmployeeCert> getEduCerts() {
        return eduCerts;
    }

    public void setEduCerts(List<EmployeeCert> eduCerts) {
        this.eduCerts = eduCerts;
    }

    public List<EmployeeCert> getQuaCerts() {
        return quaCerts;
    }

    public void setQuaCerts(List<EmployeeCert> quaCerts) {
        this.quaCerts = quaCerts;
    }

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public List<String> getAuthorities() {
        return authorities;
    }

    public void setAuthorities(List<String> authorities) {
        this.authorities = authorities;
    }

    public List<Role> getRoles() {
        return roles;
    }

    public void setRoles(List<Role> roles) {
        this.roles = roles;
    }

    public List<EmployeeCert> getProCerts() {
        return proCerts;
    }

    public void setProCerts(List<EmployeeCert> proCerts) {
        this.proCerts = proCerts;
    }
}
